package indi.h.targetcall.calls;

public interface TCall<T, E> {

	public void reset(Reset<T, E> end) throws Exception;

	public void submit(Task<T, E> t) throws Exception;

	public E spit(T id) throws Exception;

	public interface Reset<T, E> {
		public T getId();

		public E getTarget();

		public void end(E e);
	}

	public interface Task<T, E> {

		public long timeOut();

		public boolean isLock();

		public T getId();

		public void exec(E e);
	}
}
